home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 1
/
Amiga Tools.iso
/
egs-tools
/
egs_demo-version
/
egs_devels
/
examples
/
stack_language
/
eventloop.c
next >
Wrap
Text File
|
1994-06-06
|
4KB
|
138 lines
/*
** Author: Markus van Kempen
** Date : 8 November 92
**
**
** This routine handle events (like Commodore)
**
** (c) by VIONA-Development 1992/93
**
*/
BOOL HandleEvents(struct EI_Window *fenster)
{
BOOL raus = FALSE; /* TRUE, if the function should exit */
ULONG GetBits,WaitBits; /* MessagePort bits */
EI_EIntuiMsgPtr imess; /* Message structure pointer */
WaitBits = (1L << fenster->UserPort->mp_SigBit) | SIGBREAKF_CTRL_C;
while (!raus)
{
GetBits = Wait(WaitBits);
if (GetBits & SIGBREAKF_CTRL_C) /* CTRL-C pressed */
{
raus = TRUE;
}
while ((imess = (struct EI_EIntuiMsg *)GetMsg(fenster->UserPort)) != NULL)
{
switch (imess->Class)
{
case EI_iRAWKEY:
printf("iRawKey\n");
ReplyMsg((struct Message *)imess);
break;
case EI_iCLOSEWINDOW:
printf("iClose\n");
ReplyMsg ((struct Message *)imess);
raus = TRUE;
break;
case EI_iMENUVERIFY:
printf("iMenuVerify\n");
ReplyMsg ((struct Message *)imess);
break;
case EI_iMENUPICK:
printf("iMenu\n");
printf("Code = %lx\n",imess->Code);
/*
switch(imess->Code)
{
}
*/
ReplyMsg ( (struct Message *)imess );
break;
case EI_iSIZEVERIFY:
printf("VerifySizing ! \n");
EI_RemoveGadget(Window,(struct EI_Gadget *)&myBoolGadget);
ReplyMsg ( (struct Message *)imess );
break;
case EI_iNEWSIZE:
printf("Sizing ! \n");
EI_LockIntuition();
myBoolGadget.Class.Width = Window->Width-
myBoolGadget.Class.LeftEdge*2;
myBoolGadget.Class.Height = Window->Height-
myBoolGadget.Class.TopEdge*2; /* for the border */
EI_AddGadget(Window,(struct EI_Gadget *)&myBoolGadget);
EI_UnlockIntuition();
ReplyMsg((struct Message *)imess);
break;
case EI_iACTIVEWINDOW:
printf("Active ! \n");
ReplyMsg((struct Message *)imess);
break;
case EI_iMOUSEMOVE:
printf(" MouseMove ! \n");
printf(" MouseX = %d \n",imess->MouseX);
printf(" MouseY = %d \n",imess->MouseY);
ReplyMsg((struct Message *)imess);
break;
case EI_iMOUSEBUTTONS:
printf("MouseButtons\n");
ReplyMsg((struct Message *)imess);
break;
case EI_iINACTIVEWINDOW:
printf("Inactive \n");
ReplyMsg((struct Message *)imess);
break;
case EI_iVANILLAKEY:
printf("Vanilla \n");
break;
case EI_iGADGETUP :
printf("Gadget \n");
ReplyMsg((struct Message *)imess);
break;
default:
printf (" Unknown message %x & %x\n ",imess->Class,imess->Code);
ReplyMsg((struct Message *)imess);
}
}
}
return raus;
}